The present invention relates in general to electronic systems and modules for motor vehicles, and, more specifically, to remotely reflashing or updating the software or firmware in the modules.
Modern vehicles have a significant number of software components and computerized hardware components that control vehicle subsystems. These components can react to changes in vehicle states to provide advanced capabilities for vehicle control. Additionally, many of these components can interact with each other, linking various modules of the vehicle over one or more data networks, such as, but not limited to, a vehicle CAN bus.
These modules typically include programmable processor/controller circuitry using customizable instruction sets in the form of software and/or firmware. One particular module design can be used with uniquely programmed versions in different vehicle models or in the same vehicle model with different option levels. All that is required is for the manufacturer to “flash” or program each individual module as necessary. In addition, a module may be capable of being dynamically updated after being sold and put into use. Thus, if an improvement or correction to a module's programming is needed, a change can be made to the module without requiring a hardware replacement. Thus, the manufacturer has the ability to rollout improvements to individual vehicles or across group of vehicles (e.g., models) in their vehicle fleet.
Typically, when a change to a module is desired, the vehicle has been brought to a diagnostic point (e.g., dealership) where a technician is present, or the technician with diagnostic and update tools has been dispatched to the vehicle. The technician accesses the desired software module(s), makes any needed changes, verifies that the change has been properly implemented, and then moves on to a next vehicle. When changes are to be made to large groups of vehicles in a fleet, the updating can take a long time and there is a risk that some vehicles may be missed.
In addition to having software control modules, many vehicles are equipped with one or more wireless transceivers capable of either direct communication with a remote network or via a portable wireless device (e.g., cellular phone) carried by the vehicle user. For example, a telematics module is often used to connect with a remote network and a telematics service provider for navigation, roadside assistance, remote vehicle access, and other services.
Using this wireless data communication capability, it becomes possible to reflash programmable memory of electronic modules remotely. For example, U.S. Application Publication 2013/0031540, filed on Jul. 26, 2011, which is incorporated herein by reference in its entirety, generally relates to a computer-implemented method that includes establishing a wireless connection with an update server. The method further includes sending at least a VIN number to the update server and downloading one or more module updates corresponding to the sent VIN number. After reflashing one or more modules to which the one or more updates correspond, the functionality of each module which has been flashed may be verified. Pending U.S. application Ser. No. 13/803,850, filed Mar. 14, 2013, which is incorporated herein by reference in its entirety, discloses methods and a system that allow for reflashing of multiple fleet vehicles with multiple modules on each fleet vehicle. Automatic documentation of entire flash events for a vehicle and immediate upload to the vehicle configuration database are provided. It discloses automatic detection of vehicle hardware configurations, communication of that configuration to a secure server, assembly of a software package and secure transmission to a vehicle, aiding in ensuring that each vehicle is flashed according to its specific configuration.
In order to reflash any particular module, the module cannot be in active operation. To ensure that a target module is not in use, the vehicle must be parked with the ignition off when conducting an update process. Since the engine is off and it cannot be assumed that the vehicle would be connected to a battery charger, electrical power consumed by the supervisory or master module (e.g., a telematics unit) and the module being updated must be supplied by a storage battery. During a reflash process, battery capacity as measured by its state of charge (SOC) will be depleted. If multiple modules are being reflashed (whether sequentially or in parallel), there is a risk that at some point the battery SOC may be reduced below a level that can support the ongoing reflashing. In that event, the reflash process may not complete, and one or more modules may be left in a nonfunctioning state. If the module is critical (e.g., a powertrain controller), the vehicle may be rendered inoperable, which would require a manual reflashing with a service tool after being towed to a service facility, for example. Even if the inoperable module is not essential for driving the vehicle, the battery may become so depleted that the vehicle cannot be started.